<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Cwp\V20180228\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeSecurityTrends response structure.
 *
 * @method array getMalwares() Obtain Array of counted Trojan events
 * @method void setMalwares(array $Malwares) Set Array of counted Trojan events
 * @method array getNonLocalLoginPlaces() Obtain Array of counted cross-region log-in events
 * @method void setNonLocalLoginPlaces(array $NonLocalLoginPlaces) Set Array of counted cross-region log-in events
 * @method array getBruteAttacks() Obtain Array of counted password cracking events
 * @method void setBruteAttacks(array $BruteAttacks) Set Array of counted password cracking events
 * @method array getVuls() Obtain Array of counted vulnerabilities
 * @method void setVuls(array $Vuls) Set Array of counted vulnerabilities
 * @method array getBaseLines() Obtain Array of counted baselines
 * @method void setBaseLines(array $BaseLines) Set Array of counted baselines
 * @method array getMaliciousRequests() Obtain Array of counted malicious requests
 * @method void setMaliciousRequests(array $MaliciousRequests) Set Array of counted malicious requests
 * @method array getHighRiskBashs() Obtain Array of counted high-risk command
 * @method void setHighRiskBashs(array $HighRiskBashs) Set Array of counted high-risk command
 * @method array getReverseShells() Obtain Array of counted reverse shell
 * @method void setReverseShells(array $ReverseShells) Set Array of counted reverse shell
 * @method array getPrivilegeEscalations() Obtain Array of counted local privilege escalation
 * @method void setPrivilegeEscalations(array $PrivilegeEscalations) Set Array of counted local privilege escalation
 * @method array getCyberAttacks() Obtain Array of counted network attacks
 * @method void setCyberAttacks(array $CyberAttacks) Set Array of counted network attacks
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeSecurityTrendsResponse extends AbstractModel
{
    /**
     * @var array Array of counted Trojan events
     */
    public $Malwares;

    /**
     * @var array Array of counted cross-region log-in events
     */
    public $NonLocalLoginPlaces;

    /**
     * @var array Array of counted password cracking events
     */
    public $BruteAttacks;

    /**
     * @var array Array of counted vulnerabilities
     */
    public $Vuls;

    /**
     * @var array Array of counted baselines
     */
    public $BaseLines;

    /**
     * @var array Array of counted malicious requests
     */
    public $MaliciousRequests;

    /**
     * @var array Array of counted high-risk command
     */
    public $HighRiskBashs;

    /**
     * @var array Array of counted reverse shell
     */
    public $ReverseShells;

    /**
     * @var array Array of counted local privilege escalation
     */
    public $PrivilegeEscalations;

    /**
     * @var array Array of counted network attacks
     */
    public $CyberAttacks;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param array $Malwares Array of counted Trojan events
     * @param array $NonLocalLoginPlaces Array of counted cross-region log-in events
     * @param array $BruteAttacks Array of counted password cracking events
     * @param array $Vuls Array of counted vulnerabilities
     * @param array $BaseLines Array of counted baselines
     * @param array $MaliciousRequests Array of counted malicious requests
     * @param array $HighRiskBashs Array of counted high-risk command
     * @param array $ReverseShells Array of counted reverse shell
     * @param array $PrivilegeEscalations Array of counted local privilege escalation
     * @param array $CyberAttacks Array of counted network attacks
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("Malwares",$param) and $param["Malwares"] !== null) {
            $this->Malwares = [];
            foreach ($param["Malwares"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->Malwares, $obj);
            }
        }

        if (array_key_exists("NonLocalLoginPlaces",$param) and $param["NonLocalLoginPlaces"] !== null) {
            $this->NonLocalLoginPlaces = [];
            foreach ($param["NonLocalLoginPlaces"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->NonLocalLoginPlaces, $obj);
            }
        }

        if (array_key_exists("BruteAttacks",$param) and $param["BruteAttacks"] !== null) {
            $this->BruteAttacks = [];
            foreach ($param["BruteAttacks"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->BruteAttacks, $obj);
            }
        }

        if (array_key_exists("Vuls",$param) and $param["Vuls"] !== null) {
            $this->Vuls = [];
            foreach ($param["Vuls"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->Vuls, $obj);
            }
        }

        if (array_key_exists("BaseLines",$param) and $param["BaseLines"] !== null) {
            $this->BaseLines = [];
            foreach ($param["BaseLines"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->BaseLines, $obj);
            }
        }

        if (array_key_exists("MaliciousRequests",$param) and $param["MaliciousRequests"] !== null) {
            $this->MaliciousRequests = [];
            foreach ($param["MaliciousRequests"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->MaliciousRequests, $obj);
            }
        }

        if (array_key_exists("HighRiskBashs",$param) and $param["HighRiskBashs"] !== null) {
            $this->HighRiskBashs = [];
            foreach ($param["HighRiskBashs"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->HighRiskBashs, $obj);
            }
        }

        if (array_key_exists("ReverseShells",$param) and $param["ReverseShells"] !== null) {
            $this->ReverseShells = [];
            foreach ($param["ReverseShells"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->ReverseShells, $obj);
            }
        }

        if (array_key_exists("PrivilegeEscalations",$param) and $param["PrivilegeEscalations"] !== null) {
            $this->PrivilegeEscalations = [];
            foreach ($param["PrivilegeEscalations"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->PrivilegeEscalations, $obj);
            }
        }

        if (array_key_exists("CyberAttacks",$param) and $param["CyberAttacks"] !== null) {
            $this->CyberAttacks = [];
            foreach ($param["CyberAttacks"] as $key => $value){
                $obj = new SecurityTrend();
                $obj->deserialize($value);
                array_push($this->CyberAttacks, $obj);
            }
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
